tg-me.com/knowledge_accumulator/213
Last Update:
Emergent Bartering Behaviour in Multi-Agent Reinforcement Learning [2022] - анкап-симуляции с RL-агентами
Я уже писал про рецепт успешных симуляций жизни в конце этого поста, и похожим образом поступили авторы данной работы. Цель исследования - изучать поведение агентов в различных экономических условиях.
Для этого авторы разработали следующую симуляцию: есть ограниченный 2D-мир, состоящий из травы, воды и деревьев с банами и яблоками. Агенты в среде существуют 2 видов - "яблочные фермеры" и "банановые фермеры". Они, соответственно, умеют хорошо добывать яблоки и бананы с этих деревьев, с вероятностью 100% фрукт успешно добавляется в рюкзак. Если яблочный фермер пытается собрать банан, то у него маленький шанс на успех, как и наоборот. Наград тут несколько:
1) Небольшой штраф за движение, за нахождение в воде
2) У агентов есть "голод", и при достижении 0 он начинает получать штраф каждую секунду. Съедание фрукта восстанавливает голод до 30.
3) Самое интересное - яблочный фермер за съедание банана (и наоборот) получает сильно большую награду, чем за съедание "своего фрукта"
Таким образом, каждый из видов агентов умеет хорошо добывать один вид фруктов, но при этом он хочет есть другой вид. Чтобы создать возможность обмена, авторы добавляют возможность агенту посылать в локальную окрестность "оффер" - вектор [x;-y]
, который обозначает "хочу x яблок за y бананов". Пространство офферов ограничено всего 18 опциями. Далее автоматически эти офферы обрабатываются и сводятся между собой, затем атомарно совершаются. Помимо этого, конечно, агенты могут ходить, собирать и съедать фрукты.
Запуская такую симуляцию, авторы ожидаемо видят, что агенты пользуются возможностью обмена и специализируются на добыче одного фрукта, выменивая его на другой. Далее авторы проводят огромное количество экспериментов, пытаясь "переоткрыть" базовое микроэкономическое поведение у агентов.
Рассмотрим, например, понятие кривых спроса и предложения. Для них нужно сначала ввести понятие цены товара. В данной задаче ценой считается среднее соотношение товаров во всех совершённых обменах. То есть, если агенты обменивали в половине случаев 1:1, в половине 1:2, то средняя цена будет 0.75.
Напомню про сами эти кривые - кривая предложения, к примеру, яблок показывает, по какой цене яблочные фермеры готовы продавать яблоки в зависимости от количества. Кривая спроса - по какой цене банановые фермеры готовы покупать яблоки при разном их количестве. Их пересечение даёт точку равновесия, наблюдаемую на практике.
Двигая одну из этих кривых, по перемещению точки равновесия можно восстановить другую кривую, таким образом, можно нарисовать настоящие кривые спроса и предложения в этой задаче, чем и занимаются авторы. Они регулируют количество яблочных / банановых деревьев, умножая их вероятность спауна на число, и рисуют точки равновесия. Результаты прикреплены к посту. Кривые, вероятно, зашумлены, но ожидаемая в теории закономерность видна.
В статье приводится огромное количество других подобных экономических экспериментов, интересующимся советую прочитать полный вариант. У такого подхода, есть, конечно, и минус - не всегда получаемое поведение обусловлено внешними условиями, а не тем, что агент тупо не смог сойтись к оптимальной точке. Например, если бы мы задали более элементарное пространство действий, агенты могли бы попросту не научиться совершать обмен, потому что это слишком длинная цепочка элементарных операций. Тем не менее, игрушка интересная.
@knowledge_accumulator
BY Knowledge Accumulator

Share with your friend now:
tg-me.com/knowledge_accumulator/213